package com.karson.service.service;

import com.karson.common.request.PageParamRequest;
import com.karson.common.response.AlbumResponse;
import com.karson.common.vo.PageVo;

import java.util.List;
import java.util.Map;

/**
 * @author ZKS
 */
public interface RecommendService {

    /**
     * 获取个性化作品集
     * @param uid
     * @return 返回推荐作品集
     */
    Map<Object, Double> getCandidateAlbums(Integer uid);

    /**
     * 获取当日热播数据
     * @return
     */
    Map<Object, Double> getDayHotRecommendTask();

    void dailySettlement();

    PageVo<AlbumResponse> getHotRecommendList(String period, PageParamRequest pageParamRequest);

    void monthSettlement();

    /**
     * 获取全站热播排行
     * @param pageParamRequest
     * @return
     */
    PageVo<AlbumResponse> getAllHotRank(PageParamRequest pageParamRequest);

    /**
     * 获取用户个性化推荐列表
     * @param pageParamRequest
     * @return
     */
    PageVo<AlbumResponse> getInterestList(PageParamRequest pageParamRequest);

    /**
     * 云梦眠荐列表拉取 （根据用户兴趣偏好进行个性化推荐）
     * @return
     */
    List<Integer> getInterestListMein(int uid);

    /**
     * 获取用户去重后的列表，以及热门补全10条数据
     * @param ids
     * @return
     */
    List<AlbumResponse> getInterestWithDistinct(List<Integer> ids);
}
